ВВЕДЕНИЕ
Цифровая обработка сигналов позволяет выполнять в принципе любое описываемое преобразование сигнала по сколь угодно сложному алгоритму с большой степенью точности.
Чтобы выполнить цифровую обработку необходимо предварительно преобразовать аналоговый сигнал на входе в цифровой код с помощью ана-лого-цифрового преобразователя (АЦП). Алгоритмы цифровой обработки сигналов могут реализовываться как в устройствах на жесткой логике, так и в устройствах с программной логикой – универсальных либо специализированных микропроцессорах и микроконтроллерах.
1. Задание.
Требуется разработать устройство преобразования аналоговых сигналов, которое будет осуществлять двеннадцатиканальное преобразование аналоговых сигналов в цифровой код, обработку кодов и преобразование результатов обработки и преобразование результатов обработки в ШИМ. Входное сопротивление устройства должно быть не менее 100 кОм, диапазон изменения входного и выходного сигнала от 0 до 10 В, сопротивление нагрузки должно быть не менее 100 Ом, число входных каналов 12(из них 8 внутреннего АЦП); число выходных каналов 1. Устройство разработать на базе микроконтроллера PIC16F877 и АЦП AD7864. Этот микроконтроллер относится к семейству PIC контроллеров. Микроконтроллеры PICmicro вы-пускаются компанией Microchip. Основным на¬значе¬нием этих микроконтроллеров, как следует из аббревиатуры PIC (Peripheral Interface Controller), является вы¬полнение интерфейсных функций. Этим объясня¬ются особенности их архитектуры.
2. Структурная схема устройства.
Устройство имеет 12 каналов преобразования и включает входной буфер, АЦП, источник опорного напряжения, контроллер и преобразователь ШИМ

Advertisement
Узнайте стоимость Online
  • Тип работы
  • Часть диплома
  • Дипломная работа
  • Курсовая работа
  • Контрольная работа
  • Решение задач
  • Реферат
  • Научно - исследовательская работа
  • Отчет по практике
  • Ответы на билеты
  • Тест/экзамен online
  • Монография
  • Эссе
  • Доклад
  • Компьютерный набор текста
  • Компьютерный чертеж
  • Рецензия
  • Перевод
  • Репетитор
  • Бизнес-план
  • Конспекты
  • Проверка качества
  • Единоразовая консультация
  • Аспирантский реферат
  • Магистерская работа
  • Научная статья
  • Научный труд
  • Техническая редакция текста
  • Чертеж от руки
  • Диаграммы, таблицы
  • Презентация к защите
  • Тезисный план
  • Речь к диплому
  • Доработка заказа клиента
  • Отзыв на диплом
  • Публикация статьи в ВАК
  • Публикация статьи в Scopus
  • Дипломная работа MBA
  • Повышение оригинальности
  • Копирайтинг
  • Другое
Прикрепить файл
Рассчитать стоимость

Работа № 4128. Это ОЗНАКОМИТЕЛЬНАЯ ВЕРСИЯ работы, цена оригинала 1000 рублей. Оформлен в программе Microsoft Word.

Оплата. Контакты

Микроконтроллер формирует адрес канала, который необходимо обрабатывать и посылает сигнал запуска АЦП на внешний, либо на внутренний. По сигналу от АЦП (окончание процесса преобразования) Микроконтроллер читает информацию на выходе АЦП. Затем обрабатывает полученную информацию и выдает его на преобразователь ШИМ.
Алгоритм функционирования устройства следующий:
1. В начале работы к входу устройства подключён первый канал встроенного АЦП и настроен выходной канал ШИМ.
2. МК формирует и подаёт на внутренний АЦП сигнал запуска преобразования, ожидает окончания преобразования, а затем считывает код с выхода АЦП (после обработки 8 каналов сигнал считывается с внешнего АЦП).
3. МК обрабатывает полученный код и передаёт результат обработки в ПРЕОБРАЗОВАТЕЛЬ ШИМ.
3. Функциональная схема
В приложении 1 представлена функциональная схема устройства. Входной буфер на ОР285 необходим для согласования с АЦП. В схеме используется два АЦП один внутренний МК и внешний АЦП выполненный на AD7864, для обеспечения нормальной работы в однополярном режиме АЦП формирует сигнал ref, от внутреннего источника опорного напряжения, чтобы обеспечить высокую точность преобразования аналогового сигнала в код.
Аналоговый сигнал с 1 по 8 канал поступает на внутренний мультиплексор.
Микроконтроллер выполняет задачу приема кода от АЦП, его обра-ботки и выдачи в порты RС, также микроконтроллер вырабатывает управляющие сигналы, которые поступают на входной мультиплексор и АЦП.
Также микроконтроллер выполняет функции управления входным мультиплексором. На адресные входы управления мультиплексора подается код канала, с которого необходимо считать сигнал, далее сигнал поступает на входной буфер. Далее сигнал поступает на АЦП, где происходит преобразование аналогового сигнала в код.
По команде с микроконтроллера, на входе CONVST запускается преобразование в АЦП. В приведенной последовательности преобразование запускается фронтом CONVST, а через 6 µs в выходной регистр запи-сываются новые данные – результат этого преобразования. После окончания чтения нужно выждать еще 600 ns прежде чем подать очередной фронт CONVST, чтобы выходное напряжение УВХ установилось с максимальной точностью к моменту старта следующего преобразования. На вход SCLK подается внешний тактовый сигнал для последовательного интерфейса. По фронту этого тактового сигнала выводит на линию SDATA очередной разряд данных. Нужно следить, чтобы в момент прихода спада CONVST чтение из выходного регистра не происходило, так как в противном случае во время чтения выходной регистр сдвига будет сброшен, и считанные в микроконтрол-лер данные будут неправильными. Следить за тем, чтобы чтение не начиналось ранее, чем через 6 µs после фронта CONVST осуществляется про-граммно. После получения данных микроконтроллер обрабатывает их и на преобразователь с порта RС. Коммутатор осуществляет переключение полу-ченного от микроконтроллера сигнала, на выходе.
4. Базовые элементы и их параметры.
Операционный усилитель выполнен на базе микросхемы ОР285.
АЦП AD7864
12 битный 250 kSPS четырехканальный АЦП с одновременной вы-боркой по обоим каналам
Характеристики:
Отличительные особенности:
• Высокоскоростной (1,65 мкс) 12 битный АЦП
• Четыре аналоговых канала с одновременной выборкой
• Четыре УВХ
• Время выборки – 0,35 мкс
• Время преобразования – 1,65 мкс
• Однополярное питание
• Модификации с различными входными диапазонами:
±10 В, ± 5В у AD7864-1
±2.5 В у AD7864-3
от 0 В до 2.5 В у AD7864-2
• Высокоскоростной параллельный интерфейс, позволяющий осуществлять связь с 3 В микропроцессорами
• Малая потребляемая мощность — 90 мВт
• Режим пониженного потребления — 20 мкВт
• Защита от перегрузки по напряжению аналоговых входов
Применение
• Управление двигателями переменного тока
• Источники бесперебойного питания
• Системы сбора данных
• Связь
Функциональная схема:
Расположение выводов:
Общее описание:
AD7864 — высокоскоростной маломощный двухканальный 12 битный АЦП, который работает от однополярного питания +5 В. Прибор содержит 1.65 мкс АЦП последовательного приближения, четыре устройства выборки-хранения, встроенный 2,5 В источник опорного напряжения, задающий генератор и высокоскоростной параллельный интерфейс. Выборка и конверсия сигналов во всех четырех каналах происходит одновременно, что позволяет сохранить фазовые соотношения сигналов. Имеются различные модификации прибора, имеющие различные диапазоны входного аналогового сигнала: ±10 В, ± 5 В у AD7864-1, ±2.5 В у AD7864-3 и 0-2.5 В, 0-5 В у AD7864-2.
Для максимизации скорости преобразования, можно выбрать один из четырех каналов. Выбор можно осуществлять аппаратно (подачей сигналов на соответствующие выводы активизации каналов) или программно (загрузкой соответствующей команды в регистр управления).
По сигналу однократного преобразования nonCONVST УВХ производят одновременную выборку сигналов во всех каналах и начинается их оцифровка. Сигнал nonEOC служит для индикации окончания процессов преобразования в каждом канале. Сигнал BUSY служит для индикации окончания процесса преобразования сигналов во всех каналах.
Данные выдаются по стандартному 12 битному параллельному интерфейсу под управлением стандартных сигналов nonCS и nonRD. Максимальная скорость преобразования в одном канале равняется 500 kSPS. При чтении данных в течение процесса преобразования максимальная скорость преобразования всеми каналами вместе равняется 130 kSPS. Скорость преобразования при чтении данных по окончании преобразования зависит от производительности микропроцессора управления.
Приборы выпускаются в миниатюрном 0,3 дюймовом 44 выводном MQFP корпусе.
Коммутатор 5П19Б
Коммутатор 5П19Б позволяет осуществлять коммутацию получая выходе сигнал напряжением в ± 400 В и током 0,7 А. Обозначение показано на рис. 8.
Рис. 8
Электрические параметры
Базовым элементом является микросхема микроконтроллер PIC16F877
ХАРАКТЕРИСТИКА PIC16F877
• Высокоскоростная RISC архитектура
• 35 инструкций (все команды выполняются за один цикл,
кроме инструкций пе¬реходов, выполняемых за два цикла)
• Тактовая частота 20МГц
• 8к x 14 слов FLASH памяти программ
• 368 байт памяти данных (ОЗУ)
• 256 байт EEPROM памяти данных
• Система прерываний (до 14 источников)
• 8-уровневый аппаратный стек
• Прямой, косвенный и относительный режим адресации
• Сброс по включению питания (POR)
• Таймер сброса (PWRT) и таймер ожидания запуска
генератора (OST) после включения питания
• Сторожевой таймер WDT с собственным RC генератором
• Программируемая защита памяти программ
• Режим энергосбережения SLEEP
• Выбор параметров тактового генератора
• Высокоскоростная, энергосберегающая CMOS FLASH/EEPROM технология
• Программирование в готовом устройстве (используется два вывода)
• Режим внутрисхемной отладки (используется два вывода)
• Широкий диапазон напряжений питания от 2.0В до 5.5В
• Повышенная нагрузочная способность портов ввода/вывода (25мА)
• Малое энергопотребление (менее 0.6 мА при 3В, 4МГц, 20мкА при 3В, 32кГц, менее 1мкА в режиме энергосбережения).
Характеристика периферийных модулей:
• Таймер 0: 8-разрядный таймер/счетчик с 8-разрядным
программируемым пред¬делителем
• Таймер 1: 16-разрядный таймер/счетчик с возможностью
подключения внеш¬него резонатора
• Таймер 2: 8-разрядный таймер/счетчик с 8-разрядным
программируемым пред¬делителем и выходным делителем
• Два модуля сравнение/захват/ШИМ (CCP):
– 16-разрядный захват (максимальная разрешающая способность 12.5 нс)
– 16-разрядное сравнение (максимальная разрешающая способность 200 нс)
– 10-разрядный ШИМ
• Многоканальное 10-разрядное АЦП
• Последовательный синхронный порт MSSP
– ведущий/ведомый режим SPI
– ведущий/ведомый режим I2С
• Последовательный синхронно-асинхронный приемопередатчик USART
с под¬держкой детектирования адреса
• Ведомый 8-разрядный параллельный порт PSP с поддержкой
внешних сигна¬лов
• Детектор (BOD) для сброса по снижению напряжения питания (BOR)
1.2 ОСОБЕННОСТИ АРХИТЕКТУРЫ PIC16F877
Высокая эффективность микроконтроллеров PICmicro достигается за счет архитек¬туры ядра, подобная архитектура (гарвардская) обычно применяется в RISC микро¬процессорах. В гарвардской архитектуре разделена память программ и память данных. Обраще¬ние к памяти происходит по отдельным шинам адреса и данных, что значительно повышает производительность процессора по сравнению с традиционной архитек¬турой. В микроконтроллерах с традиционной архитектурой ядра команды и данные запрашиваются по одной и той же шине.
В микроконтроллерах с гарвардской архитектурой ядра выборка команды происхо¬дит за один цикл (все команды 14 — разрядные). Раздельные шины доступа к памяти программ и к памяти данных позволяют исполнять текущую команду и производить выборку следующей команды, организуя конвейерную обработку команд.
Разделение шин доступа к разным видам памяти позволяет произвольно выбирать разрядность команд микроконтроллера, что в свою очередь дает возможность эф¬фективно использовать память программ и оптимизировать разрядность шины про¬грамм к архитектурным требованиям микроконтроллера. Все команды микрокон¬троллеров однословные 14 — разрядные. 14 — разрядная шина доступа к памяти про¬грамм позволят выполнить выборку 14 — разрядной команды за один машинный цикл микроконтроллера. При использовании однословных команд число слов в па-мяти программ равняется максимальному числу команд программы микроконтрол¬лера. Это означает, что все ячейки памяти имеют силу команды.
Конвейерная обра¬ботка команд состоит из двух стадий: выборка команды из памяти, выполнение ко¬манды. Выборка команды происходит в первый машинный цикл, а выполнятся ко¬манда во втором машинном цикле. Однако из-за одновременной выборки текущей команды и выполнения предыдущей в каждом машинном цикле происходит вы¬борка и выполнение команд. При выполнении команды может возникать задержка в один машинный цикл, если результат команды изменяет содержимое счетчика команд PC. Все команды выполняются за один цикл, кроме команд ветвления. Команды ветвления требуют два машинных цикла, т.к. необходимо удалить предварительно выбранную команду из конвейера. Во время удаления выбирается новая команда, а затем она исполняется в следующем машинном цикле.
3. СТРУКТУРНАЯ СХЕМА PIC16F877
Примечание 1. Старшие биты адреса находятся в регистре STATUS.
Примечание 2. Большинство универсальных выводов портов ввода/вывода
мультиплексированы с одним или более периферийным модулем.
ОРГАНИЗАЦИЯ ПАМЯТИ ДАННЫХ
БАНКИ ПАМЯТИ, РЕГИСТРЫ ОБЩЕГО
И СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ
Память данных (368 Байт ОЗУ) разделена на четыре банка, которые содержат регистры общего и специального назначения (см. карту памяти).
Регистры общего назначения используются для хранения данных программы. Они размещаются в разных банках памяти данных. Эти регистры не инициализиру¬ются при сбросе по включению питания и имеют неизвестное значение, а при всех остальных сбросах микроконтроллера не изменяют своего значения. Обращение к регистрам общего назначения может быть выполнено прямой или косвенной адре¬сацией через регистры FSR и INDF .
Регистры специального назначения используются для управления ядром и пери¬ферийными модулями микроконтроллера. Регистры специального назначения раз¬мещены в различных банках памяти данных, а некоторые из регистров (которые используются чаще) отобража¬ются во всех банках. Обращение к регистрам специального назначения может быть выполнено прямой или косвенной адресацией. При сбросе по включению питания и других видах сброса микроконтроллера в некоторые регистры специального назна¬чения записывается определенное значение. Существуют регистры, которые содер¬жат неизвестное значение при сбросе по включению питания, а при других видах сброса не изменяются (см. техническую докумен-тацию). Описание некоторых реги¬стров специального назначения, требующихся для выполнения лабораторных работ, приведено в этом документе, получить более подробную информацию вы сможете в соответ-ствующей технической документации по данному микроконтроллеру.
В процессорах PIC существует три различных способа адресации данных: непосредственная адресация, прямая и косвенная.
Непосредственная адресация данных означает, что операнд, используемый при операции, является частью команды. Используя непосредственную адресацию, можно загрузить в регистр W (аккумулятор) необходимое число либо изменить содержимое этого регистра, произведя логическую или арифметическую операцию с некоторой константой и W.
Прямая адресация позволяет обращаться к любому регистру, указав в команде его адрес в пределах выбранного банка (предварительно необходимо произвести выбор банка памяти данных, т.е. использо¬вать биты PR1:PR0 регистра STATUS;).
Возможность явного задания адреса регистра является очень важной. Но бывают случаи, когда необходимо использовать косвенную адресацию и модифицировать адрес с помощью арифметических операций. Этот режим адресации может быть полезен при обращении к таблицам (массивам) данных. Для выполнения косвенной адресации необходимо обратиться к физически не реализованному регистру INDF (см. карту памяти данных). Обращение к регистру INDF фактически вызовет действие с регистром, адрес которого указан в регистре FSR. Косвенное чтение регистра INDF (FSR=0) даст результат 00h. Косвенная запись в регистр INDF не вызовет никаких действий (вызывает воздействия на флаги АЛУ в регистре STATUS). 9-бит косвенного адреса IRP сохраняется в регистре STATUS<7> (он указывает, к какой паре банков памяти данных выполняется обращение). Механизмы прямой и косвен-ной адресации показаны на рисунке 1.4.
ОРГАНИЗАЦИЯ ПАМЯТИ ПРОГРАММ
КАРТА ПАМЯТИ ПРОГРАММ
PIC16F876 имеют 13-разрядный счетчик ко¬манд PC, способный адресовать 8К x 14 слов памяти программ, и 14-разрядную шину данных памяти программ. Все команды состоят из 14-разрядного слова, поэтому микроконтроллер может содержать 8К команд. Это позволяет легко определить достаточность объема памяти программ для желаемого при-ложения.
Вся память программ разделена на 4 страницы по 2Кслов каждая (0000h-07FFh, 0800h–0FFFh, 1000h–17FFh, 1800h–1FFFh). Для пере¬хода между страницами памяти программ необходимо изменить старшие биты регистра счетчика команд PC, записью в регистр спе¬циального назначения PCLATH. Изменив значение PCLATH и вы¬полнив команду ветвления, счет¬чик команд PC пересечет границу страницы памяти программ.
Рисунок 1.5 Карта памяти программ и восьмиуровневый аппаратный стек.
Сброс приведет к очистке счетчика команд (PC), устанавливая адрес 0000h. Он называется «адресом вектора сброса», т.к. будет выполнен переход по этому адресу при сбросе микроконтроллера. Вместе со счетчиком команд (PC) очищается регистр PCLATH, устанавливая рабочую страницу памяти про-грамм 0.
Когда возникает разрешенное прерывание, в счетчик команд PC записывается адрес 0004h, называемый «адрес вектора прерываний», при этом значение регистра PCLATH не изменяется. Если в подпрограмме обработки прерываний требуется выполнять команды ветвления, то необходимо предварительно записать в регистр PCLATH значение, определяющее нужную страницу памяти программ. Прежде чем регистр PCLATH будет изменен, его значение должно быть сохранено в другом регистре памяти данных, а затем восстановлено перед выходом из подпрограммы обработки прерываний.
ПОРТЫ ВВОДА/ВЫВОДА
ОБЩИЕ СВЕДЕНИЯ
Универсальные порты ввода/вывода могут рассматриваться как самые про-стые периферийные модули. Они позволяют микроконтроллерам PICmicro контролировать работу и управлять другими устройствами. С целью расширения функциональных возможностей некоторые каналы портов ввода/вывода мультиплицированы с другими периферийными модулями. Как правило, когда периферийный модуль включен, вывод не может использоваться как универсальный канал ввода/вывода.
Для большинства каналов портов ввода/вывода регистры TRIS управляют направлением данных на выводе. Бит TRIS<x> управляет направлением данных на канале PORT<x>. Если бит TRIS установлен в ‘1’, то соответствующий канал порта ввода/вывода работает как вход, а если бит TRIS сброшен в ‘0’, то канал работает как выход. Простой способ запомнить направление данных в канале и состояние битов регистров TRIS: ‘1’ — напоминает ‘In’ (ввод); ‘0’ — напоминает ‘Out’ (выход).
Регистр PORT — защелка данных, выводимых на порт ввода/вывода. Все операции записи в порт выполняются по принципу «чтение — модификация — запись». Требуется некоторая осторожность при применении подобных команд к регистрам портов ввода/вывода. Поскольку чтение регистра PORT возвращает состояние на выводах порта, а запись выполняется в выходную защелку порта.
PORTВ
PORTB – 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISB определяют направление каналов порта. Установка в ’1’ бита регистра TRISB переводит выходной буфер в 3-е состояние. Запись ‘0’ настраивает соответствующий канал как выход, содержимое защелки PORTB передается на вывод микроконтроллера. Три вывода PORTB мультиплицированы со схемой низковольтного программирования: RB3/PGM, RB6/PGC, RB7/PGD. Четыре канала PORTB RB7:RB4, настроенные на вход, могут генерировать прерывания по изменению логического уровня сигнала на входе. Прерывания по изменению сигнала на входах рекомендуется использовать для определения нажатия клавиш, когда PORTB полностью задействован для реализации клавиатуры. RB0/INT вход внешнего источника прерываний.
Адрес Имя Номер бита Сброс
POR, BOR Другие
сбросы
7 6 5 4 3 2 1 0
06h, 106h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 ХХХХХХХХ uuuuuuuu
86h, 186h TRISB Регистр направления данных PORTB 11111111 11111111
Обозначения: u = не изменяется; x = не известно;
МОДУЛЬ ТАЙМЕРА TMR0
TMR0 – 8-разрядный таймер/счетчик, имеет следующие особенности:
• возможность чтения и записи текущего значения счетчика;
• 8-разрядный программируемый предделитель;
• внутренний или внешний источник тактового сигнала;
• выбор активного фронта внешнего тактового сигнала;
прерывания при переполнении (переход от FFh к 00h).
Когда бит T0CS в регистре OPTION_REG сброшен в ‘0’, TMR0 работает от внутреннего тактового сигнала. Приращение счетчика TMR0 происходит в каждом машинном цикле (если предделитель отключен). После записи в TMR0 приращение счетчика запрещено два следующих цикла. Пользователь должен скорректировать эту задержку перед записью нового значения в TMR0. Если бит T0CS установлен в ‘1’, TMR0 работает от внешнего источника тактового сигнала со входа RA4/T0CKI (вывод PORTA RA4 мультиплицирован с тактовым входом T0CKI). Активный фронт внешнего тактового сигнала выбирается битом T0SE в регистре OPTION_REG (если T0SE = 0, то ак-тивным является передний фронт сигнала). Предделитель представляет собой 8-разрядный счетчик, который может быть включен либо перед TMR0, либо перед WDT (сторожевым таймером). Использование предделителя пред WDT означает, что TMR0 работает без предделителя, и наоборот. Коэффициент деления предделителя определяется битами PSA (выбор включения предделителя: 1= предделитель включен перед WDT; 0 = предделитель включен перед TMR0) и PS2:PS0 (установка коэффициента деления предделителя) в регистре OPTION_REG<3:0>. Если PSA=1, то коэффициент деления для TMR0 1:1. Если предделитель включен перед TMR0, любые ко-манды записи в TMR0 (например, CLRF 1, MOVWF 1, BSF 1,x и т.д.) сбрасывают предделитель. Когда предделитель подключен к WDT, команда CLRWDT сбросит предделитель вместе с WDT. Предделитель также очищается при сбросе микроконтроллера. Предделитель недоступен для чте-ния/записи.
Прерывания от TMR0 возникают при переполнении счетчика, т.е. при переходе его значения от FFh к 00h. При возникновении прерывания устанавливается в ‘1’ бит T0IF в регистре INTCON.
Регистры и биты, связанные с работой TMR0 представлены в таблице:
СИСТЕМА ПРЕРЫВАНИЙ
ОБЩИЕ СВЕДЕНИЯ
PIC16F877 имеет 14 источников прерываний:
• Внешний источник прерываний INT;
• Переполнение таймера TMR0;
• Изменение уровня сигнала на входах PORTB (выводы RB7:RB4);
• Прерывание от ведомого параллельного порта;
• Прерывания от USART;
• Прерывание от приемника:
• Прерывание от передатчика;
• Завершение преобразования АЦП;
• Прерывания от LCD;
• Завершение цикла записи в EEPROM память данных;
• Переполнение таймера TMR1;
• Переполнение таймера TMR2;
• Прерывания от модуля CCP;
• Прерывания от модуля SSP.
Для управления прерываниями существуют регистры INTCON, PIR1, PIR2, PIE1 и PIE2. Регистр INTCON содержит флаги отдельных прерываний, биты разрешения этих прерываний и бит глобального разрешения прерываний GIE. В регистрах PIR1, PIR2 содержатся флаги прерываний периферийных модулей микроконтроллера, а в регистрах PIE1, PIE2 соответствующие биты разрешения прерываний. В регистре INTCON находится бит разрешения прерываний от периферийных модулей.
ОБРАБОТКА ПРЕРЫВАНИЙ
Флаги прерываний устанавливаются при возникновении условий пре-рываний вне зависимости от состояния соответствующих битов маски и бита GIE. Это позволяет выполнять программный контроль возникновения условия прерываний.
При переходе на подпрограмму обработки прерываний бит GIE аппаратно сбрасывается в ‘0’, запрещая прерывания, адрес возврата из подпрограммы обработки прерываний помещается в стек, а в счетчик команд PC загружается вектор прерывания 0004h. Поскольку в стеке сохраняется только содержимое программного счётчика, то содержимое остальных регистров, необходимое для выполнения основной программы (например, регистр W и STATUS), должно быть сохранено программно.
Источник прерываний может быть определен проверкой флагов прерываний. Важно заметить, что флаг запроса должен быть сброшен в ноль программно перед возвратом из прерывания; если он не будет сброшен, то после выполнения команды возврата RETFIE сразу же последует переход к той же самой подпрограмме обработки прерывания. Рекомендуется производить сброс битов запроса в обработчике прерываний как можно раньше, поскольку при обработке текущего прерывания могут поступить другие запросы.
При возвращении из подпрограммы обработки прерывания, по команде RETFIE, адрес возврата восстанавливается из стека, а бит GIE аппаратно уста-навливается в ‘1’ разрешая все немаскированные прерывания.
Процесс обработки прерывания можно условно представить следующим образом:
5. Расчет элементов схемы.
Входной буфер собран на ОУ включенной — по схеме повторителя напряжения. Входное сопротивление схемы очень велико и измеряется мегао-мами. Поэтому входная и выход¬ная цепи оказы¬ваются гальвани¬чески изолиро¬ванными друг от друга.
По заданию нам требуется, чтобы Rвх было не менее 100 кОм
Для согласования нагрузки Uвх 10В Uвых 5 В Определим значения R1 и R2 делителя напряжения
Выбираем ближайшие номиналы 51 кОм и 51 кОм из ряда Е48
Следующий канал рассчитывается точно также.
6. Алгоритм программы для микроконтроллера.
Пояснение к алгоритму функционирования МК.
1. На этапе инициализации необходимо проинициализировать порты следую-щим образом:
• RA – ввод
• RB – ввод
• RD – ввод/вывод
• RC –ввод/вывод
• RЕ –ввод
2. МК формирует запрос на прием данных во внутренний АЦП через порты RA и RE.
3. Чтение данных происходит следующим образом: МК подает сигнал запуска преобразования, АЦП преобразует аналоговый сигнал в код и подает запрос на запуск, в подпрограмме обработки и принимает преобразованный код в порт RB и RD.
4. Обработка данных и вывод данных через порт RC сигнала ШИМ.
5. Проверка номера канала: если номер канала больше либо равно 9 – отправляется на пункт 7, иначе – выполняется пункт 6
6. Увеличение номера канала на 1 и далее на пункт 2
7. Из порта RD подается запрос на прием данных из внешнего АЦП
8. Чтение данных происходит следующим образом: МК подает сигнал запуска преобразования, АЦП преобразует аналоговый сигнал в код и подает запрос на запуск, в подпрограмме обработки и принимает преобразованный код в порт RB и RD.
9. Обработка данных и вывод данных через порт RC сигнала ШИМ.
Используемые источники.
1. Вершинин В. А. Применение микро-ЭВМ в системах автоматики. Учебное пособие., РГАТА – Рыбинск: 1994 г.
2. Балашов Е. П., Пузанков Д. В. Микропроцессоры и микропроцессор-ные системы – М.,«Радио и связь», 1981 г.
3. Интегральные микросхемы. Микросхемы для аналого-цифрового преобразования и средств мультимедиа. Под ред. Перебаскина А. В. Выпуск 1 – М. ДОДЭКА, 1996 г.
4. Сташин В. В., Урусов А. В., Мологонцева О. Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. — М.: Энергоатомиздат, 1990 г.
5. Яценков В.С. Микроконтроллеры MICROCHIP. Практическое руководство. Москва: Горячая линия – Телеком, 2002. – 296с
6. Ульрих В.А. Микроконтроллеры PIC16C7X. Москва: Наука и техника 2000